Graphical user control for multidimensional datasets

ABSTRACT

A user control is provided for use with a multidimensional dataset that allows a user to graphically set the bounds for one or more of the dimensions of data selected from the dataset. The graphical user control includes a wireframe cube representing the extent of data in the dataset and a selector box within the data cube. A user can indicate a selected perspective and orientation of the data by selecting a portion of an edge of the selector box, and a visual indication of the selected perspective and orientation is provided. The user further can select a desired portion of the data by changing a size and/or a position of the selector box within the data cube. The graphical user control further includes a visual indicator representing the fourth dimension of the dataset which allows the user to identify and select a further subset of the data defined by the selector box. The graphical user control further includes one or more navigation buttons that allow the user to rotate a view around the selector box, the view reflecting the selected perspective and orientation of data in the dataset.

CROSS-REFERENCE

This application claims the benefit of priority based on U.S.Provisional Patent Application No. 61/033,085 filed on Mar. 3, 2008, theentirety of which is hereby incorporated by reference into the presentapplication.

TECHNICAL FIELD

The present invention relates to a graphical user control to facilitatenavigation through datasets having multiple dimensions.

BACKGROUND

Interaction with one or more datasets is the basis for manyapplications, both in the military and the civilian realm. Many of thesedatasets are multidimensional, having data that represent values in morethan one dimension.

For example, a dataset of ocean water characteristics can includethree-dimensional data of latitude, longitude, and water depth, whereevery data point represents a specific location in the ocean as definedby particular latitude, longitude, and depth. Other data regarding theocean's chemical and physical properties such as salinity, temperature,current speed, and direction also can be part of the dataset. Inaddition, such a dataset can also have an additional dimension such astime, wherein a particular point in the dataset represents a value for aspecific location in the ocean at a particular time.

Working with data in a multidimensional dataset is a key part of theplanning, development, and execution of operations, both civilian andmilitary, relating to that data. For example, with respect to an oceanwater dataset mentioned above, success of an operation can requirecareful analysis of many chemical and physical conditions of the waterthat can affect the operation's outcome. One important chemical propertyis salinity of the water at a particular point, which can be used withtemperature and pressure (depth) to calculate water density, which inturn can determine the buoyant force range that an underwater vesselshould be calibrated to in order to operate within the environmentwithout sinking or becoming unrecoverable. Important physicalcharacteristics can include water current speed and direction, whichmust also be known to be within an acceptable range for the operationallimitations of the vehicle in question. Current speed and direction canalso be used to calculate estimates of energy consumption and estimatedtime of arrival for points along a proposed operation route.

It is easy to see that this information is important to civilianoperations such as commercial shipping and navigation, offshore oil andgas exploration, coastal management, and commercial fishing. Moreover,this information is also crucial to military missions such as operationof conventional Navy vessels and navigation equipment, missions relatingto underwater gliders and unmanned underwater vehicles, and mannedmissions such as those conducted by Navy SEALs.

When planning for missions that consider these and othercharacteristics, it is beneficial to analyze all of the applicabledatasets for the same volume at the same time, for example, to determinewhether they have independent or combined effects on the outcome. Oneway of analyzing datasets is to graphically render the data, forexample, into tables, charts or other visual displays. However,graphically rendering multiple-dimension datasets and allowing the userto navigate freely through them is extremely computer-intensive andcomplex to implement. See D. Hearn and M. P. Baker, “Computer Graphics Cversion,” Second Edition, 1997. The advantages of this type of userinteraction with the data in terms of added user decision-making abilityin light of the required computing resources often are questionable atbest. In addition, in some environments there may not be a horizon orother physical object to use as a frame of reference for properorientation. This problem is particularly acute in underwaterenvironments, where users can become disoriented and lose directionalcontext regarding what they are viewing.

In addition, such datasets often are extremely large and thereforedifficult and computer resource intensive to navigate due to the sheersize of the data involved.

To address some of these problems, one alternative to rendering graphicsfor multiple data sets is creation of a single union of the combinedeffects of all the data by applying thresholds to values within and inbetween each dataset to evaluate the overall conditions for theenvironment. One such approach is often referred to as “traffic lightanalysis” (TLA) since the results are usually limited to values thatcorrespond to green (go), yellow (wait), or red (no go). See B.Bourgeois et al., “Undersea Mission Planning: Visualization Support forDeconfliction of 4DxN Constraints,” 15^(th) International Symposium onUnmanned Untethered Submersible Technology 07, Durham, N.H., August2007. Further processing of these results into Geospatial Bitmapsprovides the added benefits of vector-to-raster conversion routines andhigh performance data comparisons between datasets. See U.S. Pat. No.6,218,965, Moving Map Composer (2001). However, as noted above,graphically rendering multiple-dimension datasets is extremelycomputer-intensive and complex to implement, and thus may not befeasible in many cases.

Thus, it is desirable to provide a user control to enable a user tobetter work with multidimensional datasets. In particular, it often isdesirable to provide a user a means to select a subset of the data sothat relevant data may be analyzed to provide more useful results withless load on computer resources.

SUMMARY

This summary is intended to introduce, in simplified form, a selectionof concepts that are further described in the Detailed Description. Thissummary is not intended to identify key or essential features of theclaimed subject matter, nor is it intended to be used as an aid indetermining the scope of the claimed subject matter. Instead, it ismerely presented as a brief overview of the subject matter described andclaimed herein.

The present invention provides a user control for use with amultidimensional dataset that allows a user to graphically set thebounds for one or more of the dimensions of data selected from thedataset. The user control can be used with any application that workswith the data set, and is particularly useful for applications thatprovide a visualization of the data by providing the user with asimplified method for choosing the desired perspective and orientationfor what is to be visually displayed by the application.

The graphical user control of the present invention includes a wireframecube representing three dimensions of the dataset, a selector box withinthe data cube that allows a user to indicate a selection of the data bya size and position of the selector box within the data cube, and avisual indicator of a perspective of the data being selected. Thegraphical user control further includes a visual indicator representinga fourth dimension of the dataset. The visual indicator allows the userto identify and select a further subset of the three-dimensional datadefined by the selector box, based on the fourth dimension of the data.Each of the three-dimensional selector box and the fourth-dimensionindicator can also be used separately to identify and select a desiredsubset of the data corresponding to the selector box or thefourth-dimension indicator, respectively. The graphical user controlfurther includes one or more navigation buttons that allow the user toidentify and select the desired perspective of the data being selected.

BRIEF DESCRIPTION OF THE DRAWINGS

FIGS. 1A and 1B are block diagrams showing an exemplary configuration ofcomponents of a graphical user control for a four-dimensional dataset inaccordance with the present invention.

FIGS. 2A-2C are block diagrams showing exemplary perspective andorientation aspects of a graphical user control in accordance with thepresent invention.

FIGS. 3A-3D are block diagrams showing exemplary mouse interactions witha graphical user control in accordance with the present invention.

FIGS. 4A-4C are block diagrams showing exemplary selections of a subsetof data using a graphical user control in accordance with the presentinvention.

FIGS. 5A-5D are block diagrams showing exemplary aspects of a 4^(th)dimension slider selector device in a graphical user control inaccordance with the present invention.

FIGS. 6A and 6B are block diagrams showing exemplary alternativeconfigurations of a graphical user control in accordance with thepresent invention.

DETAILED DESCRIPTION

The invention summarized above can be embodied in various forms. Thefollowing description shows, by way of illustration, combinations andconfigurations in which the aspects can be practiced. It is understoodthat the described aspects and/or embodiments of the invention aremerely examples. It is also understood that one skilled in the art mayutilize other aspects and/or embodiments or make structural andfunctional modifications without departing from the scope of the presentdisclosure.

For example, the graphical user control of the present invention isdescribed herein as being in the form of a cube representing athree-dimensional dataset with a second cubic selector box within thedata cube for selection of the desired data subset, and a barrepresenting the fourth dimension of the data with a slider forselection of the desired portion of that data. However, it should beappreciated that the geometry of the user control described herein ismerely exemplary, and other geometries can be used within the scope andspirit of the invention. Also, although in the exemplary embodiment ofthe graphical user control of the present invention described herein andshown in the Figures, the visual indicia comprise colors, it can easilybe appreciated by one skilled in the art that any form of visualindicia, such as a specific pattern or otherwise, also be used, and allsuch configurations are within the scope of the present disclosure.

In addition, although the graphical user control according to theinvention is described herein in the context of its use in connectionwith a four-dimensional (4D) dataset, where three dimensions representlatitude, longitude, and depth and a fourth dimension represents time,it will be appreciated by one skilled in the art that the graphical usercontrol according to the present invention can be expanded for use withdatasets having more than four dimensions, for example by havingmultiple data cubes where multiple selections from the dataset can bemade. For example, although the graphical user control is sometimesdescribed herein as being used with a 4D ocean water dataset comprisingsalinity data at particular points in the ocean at particular times, itis easily apparent that the principles of a user control having one ormore features described herein can be used for any multidimensionaldataset.

Further, although the user control of the present invention is describedas being used in an application used to identify and graphically displaymission conditions for underwater vessels, it can be appreciated that auser control in accordance with the present invention can be used withany application wherein analysis of all or a portion of amultidimensional dataset is desirable. For underwater vessel environmentanalysis, one type of dataset to be studied through the use of thisinvention is the results of traffic light analysis. Traffic lightanalysis is the practice of identifying thresholds given specificdatasets such as current speed within an oceanographic forecast. Theanalysis results would, for example, identify all places within thedataset where the current speed is between 0 and 2 knots. The resultingdataset would display red where the conditions are met, green otherwise,and potentially yellow if a third cautionary rule was defined. Theresults will potentially be similar to the movement of a lava lamp.

In cases where the analysis is done somewhere between the surface andthe ocean floor, no other visual reference may be available to indicatethe orientation of the graphics being displayed. The invention providesthe necessary support to allow studying the results in order to findpaths in and around these areas by helping the user maintain properperspective. Since the ocean environment is dynamic and constantlychanging, this invention is crucial for effective dataset navigation andstudy. As will be described in more detail below, a graphical controlfor multidimensional datasets in accordance with the present inventionincludes a collection of components that can operate together and can beconfigured in different ways. It should be noted that the configurationshown in the Figures and described herein are used to illustrate basicfunctionality of the graphical control of the present invention and donot necessarily reflect any required visual styling or relative sizeratios of the components of the invention. It is also contemplated thatmany aspects of a graphical control for multidimensional datasetsaccording to the present invention can be configurable to meet thedifferent needs of different datasets, users, and applications, and thatsuch configurations are within the scope and spirit of the presentdisclosure.

The components of the graphical control shown in the figures can beconnected to the code for the associated application through a singleinterface. Event processing and property setting can be done throughthis single interface to simplify the integration between the controland the application. As will be described below, the same event can begenerated through interactions with one or more components, andtherefore, the single interface should be capable of handlingsynchronization of the constituent parts. Synchronization of constituentparts also may be required if a change to one component requires othercomponents to update their state or if a property setting affects morethan one component. Thus, an application implementing a graphical usercontrol in accordance with the present invention will ordinarilyinstantiate each of the component parts to be used, add them to theapplication's layout scheme, and register them with thecontrol-application interface controller. In this way, the applicationcan ensure that the components to the graphical user control areproperly coordinated and that it will interact with the application'sdataset in the desired way while allowing flexibility in how thecomponents are integrated into the application GUI.

An exemplary configuration of a graphical user control for 4D datasetsin accordance with the present invention will be described in thecontext of the Figures. It is important to note that the Figures areintended to illustrate basic component functionality and interaction anddo not reflect any required visual styling. In addition, it iscontemplated that a goal of some application developers may be for thecontrol to be unobtrusive as possible, and thus in one or moreembodiments, a graphical rendering of the control according to theinvention can have one or more transparent or semi-transparentcomponents, and the components can be made as small and/or thin aspossible without causing them to lose their effectiveness. Regardless ofthe configuration, the control can provide a connection between what theuser wants and what the application needs to know in order to analyzethe data, for example, by presenting the results as a 2D or 3D renderingin a graphics window.

Components of an exemplary configuration of a graphical user control for4D datasets in accordance with the present invention are shown in FIG.1A. As seen in FIG. 1A, an exemplary configuration can include a datacube 101, a selector box 102, a 4^(th) D slider bar, and one or morenavigation buttons 104. These components work together to provide theuser key functionality to the user. The components provide users theability to choose how they want to observe data in a 4D environment andhelp them maintain an understanding of their frame of reference andorientation at a glance. Each of these components will be described inmore detail below.

The first component is Data Cube 101 shown in FIG. 1A. In the exemplaryconfiguration shown, Data Cube 101 comprises a thin wire frame thatrepresents the full range of data available to navigate in the x, y andz dimensions. The visual size of this component can be set by theapplication or configured by the user. In addition, the wire framecomprising Data Cube 101 can visually reflect the relative sizes of thethree dimensions once each of their data ranges has been initialized. Asdescribed in more detail below, Data Cube 101 also can communicate thecontext and orientation of the data being analyzed by the user.

The second component shown in FIG. 1A is Selector Box 102. Selector Box102 comprises an interactive wire frame that allows a user to identifyand select the portion of data from the dataset to be analyzed. DataCube 101 provides a boundary frame of reference for sizing andpositioning Selector Box 102. For example, Selector Box 102 can be usedto set the size of the volume of data to be rendered in the graphicswindow. In addition, the position of Selector Box 102 within Data Cube101 can be set to determine exactly which volume of data will berendered. Additional functionalities of Selector Box 102 allow the userto choose the perspective and rotation of the data to be rendered in thegraphics window. In addition, in some embodiments, more than oneSelector Box may be situated within the same Data Cube, and eachSelector Box may be used to identify and/or select data from thedataset. These and other aspects of Selector Box 102 will be describedin further detail below.

The next component of an exemplary configuration of the graphical usercontrol according to the invention shown in FIG. 1A is 4^(th) D Slider103. 4^(th) D Slider 103 is dedicated to control of data comprising the4^(th) dimension of the dataset. As will be described in more detailbelow, 4^(th) D Slider 103 provides the user with basic positionselection capability plus two important additional capabilities. Thefirst of these is the ability to stretch the sliding marker to cover asection, or period if considering time, of the representative data. Thesecond is the ability for the application to dynamically set a colorpallet of multiple, layered data values. When used to evaluatetime-based data, 4^(th) D Slider 103 combines and extends the ideas ofprogress bars, data sliders, and data layers by allowing indication ofmore than one condition and by allowing an adjustment for the amount, orwindow, of composite data to be viewed.

The fourth component of the exemplary embodiment of a graphical usercontrol for 4D datasets shown in FIG. 1A comprises one or moreNavigation Buttons 104 that can be linked together programmatically andsymbolically to Selector Box 102. Navigation Buttons 104 provideconvenient access to traversing adjacent sides or perspectives from thecurrently chosen view. The appearance of the Navigation Buttons 104corresponds to the visual indicia of the selected perspective andorientation, where the “highlighted” Navigation Button corresponds tothe highlighted edge of the Selector Box. In addition, NavigationButtons 104 allow the user to “rotate” the view around the Selector Boxrelative to the chosen frame of reference by selecting one of NavigationButtons 104, with the direction of rotation being indicated by the arrowon the selected Navigation Button. Thus, in the exemplary configurationshown in FIG. 1A, Navigation Buttons 104 are aligned as borders to theview and are color coordinated to align with the orientation of thecurrent view. The colors of the top, bottom, left and right buttonscorrespond to the frame edges highlighted on the Selector Box with thebottom button color being different to signify the bottom edge of thegraphics perspective. Of course, alternative configurations arepossible, both in terms of placement of the Navigation Buttons and thevisual indicia of the orientation of the current view, and it iscontemplated that such alternative configurations can either be selectedby the application developer or by the user within the scope of thepresent invention.

As noted above, a graphical user control for 4D datasets in accordancewith the invention includes two operational modes: a control mode and anindicator mode. A depiction of an exemplary embodiment of the controlmode is shown in FIG. 1A. The control mode is enabled when the usermoves the mouse over a specified area of a window of the applicationbeing used to analyze and visualize the dataset, for example, the topright area of a graphics window of the application. As seen in FIG. 1A,the control mode provides a magnified view of the control with the mostinformation about the currently selected perspective. It also allows theuser to interact with 3D Selector Box 102 and 4^(th) D Slider 103described briefly above and in more detail below.

A second operational mode of the graphical user control of the presentinvention comprises an indicator mode shown in FIG. 1B. The indicatormode is enabled, or more correctly, the control mode is disabled, whenthe user's mouse is moved away from the specified area of the graphicswindow. In the exemplary embodiment of the indicator mode shown in FIG.1B, a simplified graphical rendering of 3D Selector Box 102 is displayedto provide the user's perspective at a glance. Data Cube 101 and 4^(th)D Slider 103 are hidden and 3D Selector Box 102, having 202 highlightedtop side 105 a and orientation bar 105 b, is reduced in size and tuckedup into the corner in indicator mode to provide maximum viewing of thedata being rendered in the graphics window.

FIGS. 2A-2C depict aspects of operation of a 3D Selector Box in agraphical user control for 4D datasets in accordance with the presentinvention. One key function of the 3D Selector Box is helping the userunderstand the perspective and orientation of the data with which theyare working. As previously seen in the exemplary configuration shown inFIG. 1A, a 3D Selector Box in the present invention comprises six sides,with each side having four possible rotations, for a total oftwenty-four perspective views into the volume of data defined by theSelector Box. If the Selector Box is used to identify a single dataslice as shown in FIGS. 4A and 4B, there will be eight views, one eachfor viewing from the front and the back of the single data slice, andfour rotations for each such view. In addition, each side of theSelector Box can be identified as follows: T for the top, B for thebottom, L for the left, R for the right, F for the front and A for theaft. In some embodiments the sides can be so labeled, but an actualvisual labeling of the sides is not required. To assist in thediscussion herein, FIGS. 2A-2C use this labeling scheme to display someexamples of how perspective and orientation are related between theSelector Box and the graphics rendering window.

FIG. 2A shows a Selector Box with its top side labeled and further showsan example of how the graphics window would orient its rendering of theselected data. As seen in FIG. 2A, a top side 202 a of Selector Box 201has been highlighted, for example by the user selecting the top side byclicking the mouse on one of the top side wire frame edges or byselecting a corresponding menu item linked to the control-applicationinterface controller event mechanism. In addition, as seen in FIG. 2A,the edge of the wire frame 202 b under the T is set to have the samevisual indicia as the bottom Navigation Button 203 located under theapplication window. This visual indicia shows the correlation betweenthe bottom edge of the graphics rendering and the edge of the boxselected by the user, for example by clicking on the edge directly onthe Selector Box.

One key visual indicia of the graphical user control of the presentinvention is an “orientation bar,” which can be analogized to a “chin upbar” where the user imagines looking into the Selector Box from thatside while placing their chin on the specified bar. The perspective ofthe data rendered in the graphics window will correspond to theperspective of the data “seen” by the viewer looking in on the data fromthat location. For example, in FIG. 2A, a user looking at the datarepresented by T 202 c from orientation bar 202 b would see the data asupright and non-reversed, as represented by T 204 in the graphicswindow.

FIG. 2B continues this example by showing how the application wouldorient the graphics when the left side 202 d of Selector Box 201 ischosen and bottom Navigation Button 203 is the reference bar. As seen inFIG. 2B, in such an orientation, as with the data in FIG. 2A, the datafrom the “left side” of the dataset would be seen upright andnon-reversed, as represented by L 205 in the graphics window. A userlooking at the data represented by L 202 f from orientation bar 202 ewould see the data as upright and non-reversed, as represented by L 205in the graphics window.

FIG. 2C shows how the application would orient the graphics if the userwere looking into the front of the Selector Box 201 with their gazerotated 90 degrees clockwise. Thus, in the exemplary case shown in FIG.2C, the front side 202 h and orientation bar 202 g are chosen torepresent the rotated perspective of the data being rendered. FIG. 2Cshows the described graphical rotation via the rendered ‘F’ 202 i in theSelector Box 201 and ‘F’ 206 which is shown with a 90 degree rotation inthe graphics display window. The combination of Selector Box 201'sorientation bar 202 g indicia and lower Navigation button 203 indiciacan enable the user to easily understand the context of the renderedgraphics relative to the selected perspective.

In addition, in some embodiments of the graphical control of the presentinvention, a “preview” of the perspective of the rendered graphics canbe displayed in the graphics window. For example an appropriate graphiccan appear on the selected side of the Selector Box 201 and a largergraphic representing the orientation of the data can appear in thegraphics window when a particular orientation bar is selected. Thus,referring to FIG. 2A, T 202 c can appear on the top of Selector Box 201when the top 202 a is selected, and T 204 can appear when orientationbar 202 b is selected; and referring to FIG. 2C, F 202 i can appear atthe front of Selector Box 201 when front 202 h is selected, and thecounterclockwise F 206 can appear when orientation bar 202 g isselected. If a different orientation bar were selected, the “F” graphicshown in the graphics window would have a corresponding rotation toindicate that orientation and perspective. Thus, in this way, the usercan easily see the orientation and perspective of the graphic that willbe rendered from the selected data, before actually having to create agraphic from the data, saving time and computing resources, and cancorrect the selected orientation as necessary to ensure that erroneousresults do not occur.

As noted above, the present invention can provide a steady frame ofreference correlation between the rendered graphic rendering and itsorientation within the selected dataset. For many types of data, theorientation of the data is inherent within the data. Such examples arethe existence of a “horizon,” the presence of buildings, or otherphysical characteristics of the data that imply orientation up, down orotherwise. For mission planning in underwater environments, however,this orientation can easily be lost when looking at parameters such ascurrent speed, temperature or density. These physical characteristics ofthe environment by themselves don't imply any orientation to acoordinate system and require additional information to ensure that theyare viewed from a proper orientation. One example of this is provided byconditions sometimes experienced by swimmers while SCUBA diving. In theweightless (neutral buoyant) conditions underwater, a diver often has novisual means to determine the direction back to the surface. In suchcases, he or she can watch the direction of the air bubbles they produceto gain a reference. Likewise, the visual indicia of the 4D graphicalcontrol can be used to determine ‘which way the bubbles would be going’for a given graphics display.

As noted above, the graphical user control for 4D datasets according tothe present invention can allow a user to select an orientation for thedata selected by clicking on a portion of the Selector Box representingthat data.

FIGS. 3A-3D depict the way in which the user can select or change theperspective or orientation of the data being analyzed. In the exemplaryembodiment shown in the Figures, it can be seen that each edge of theSelector Box is part of two adjacent sides. If in its simplest form eachedge of the wire frame is drawn with a line width of 2 pixels, each sideof the line (1 pixel each) can represent the side of the box closest toit. In some embodiments, one or more of the developer of the applicationwith which the graphical user control is to be used or the user can varythis as desired for scaling, aesthetics, and ease of operation.

The software controlling the graphical user control will treat any timethe user has the mouse over the Selector Box as a potential change inthe user's interaction with the dataset. Thus, the software can trackthe mouse position and where each edge of the Selector Box wire frame isdrawn, and can highlight a side of the Selector Box of interest when themouse is hovering over any part of the edge that relates to that side.This will occur when the mouse is over the graphic representing theSelector Box, since the open areas inside the Selector Box canpotentially represent either of two sides. To assist the selectionprocess, the software can visually indicate the particular edge of theSelector Box that the mouse is over in, for example, a pattern or acolor different than the rest of the proposed side to indicate that itwill become the new “chin-up bar” for purposes of perspective andorientation as discussed above.

FIGS. 3A-3D show various examples of a visual indicia that can be givenwhen the user hovers the mouse over the Selector Box. Thus, as seen inFIG. 3A, when the user hovers the mouse over the right side 301 a of theSelector Box 301, the right side of the Box is highlighted. In addition,a further visual cue can be given to indicate that the mouse is hoveringover the left edge 301 b of that side, shown as a horizontal pattern inthe exemplary embodiment depicted in FIG. 3A. FIG. 3B shows the similarhighlighting that could occur if the user then moves the mouse to hoverover the front side 302 a of the Selector Box 302. Note that thehighlighted edge 302 b is the other side of the edge depicted in FIG.3A, and is highlighted in a similar manner to indicate that the mouse ishovering over it and that it may be selected as the “chin-up bar” forthe dataset.

No selection is actually made until the user indicates such a selection,for example by clicking a left mouse button over the pixel on thedesired side of the edge. Once the selected pixel is clicked, a signalis sent to the application to update its graphics window and theSelector Box updates its indication of the new perspective andorientation as shown in FIG. 3C. Thus, as shown in FIG. 3C, the frontside 303 a of Selector Box 303 is highlighted to indicate that it hasbeen selected by the user, and further, the right edge 303 b of thefront side is highlighted in a different color to indicate that it hasbeen selected as the orientation “chin-up bar” for the dataset. Inaddition, it is contemplated that the user can just as easily cancel achoice of perspective and orientation. Thus, if a user clicks the leftmouse button over a pixel to select a side of the data set and anorientation bar but then decides that they don't want that choice, theselection can be cancelled, for example, by pressing and holding theright mouse button while releasing the left mouse button to cancel thechoice. This feature aids performance since choosing a new perspectiveand orientation could take time depending on the amount of data and thenature of the graphical rendering. All of this functionality will alsobe available to application developers through the 4D control interfaceto allow the creation of custom interaction.

After the orientation of the Selector Box has been set, the user alsocan interact with the Selector Box to represent a desired selection ofdata from the dataset. In accordance with the present invention, suchselection can be made by resizing and/or repositioning the Selector Boxin a manner such as that described below. The design of the mechanismfor resizing and positioning is a continuation of the approach taken toallow the selection of perspective and rotation. Thus, in a graphicaluser control having one or more features described herein, the user canindicate a desired direction to adjust, resize, and/or move the SelectorBox by hovering the mouse over the edge of the side that when movedwould stretch or shrink the box in the desired direction. For example,as shown in FIG. 3D, a user can resize Selector Box 304 by pressing downthe left mouse button on edge 304 a and drag the edge in the desireddirection until it reaches the desired position. In the exemplaryembodiment shown in FIG. 3D, as the Selector Box is being resized, itcan be rendered as a simple line drawing 304 b to allow preciseadjustment of the size and position. When the left mouse button isreleased, the new size of the Selector Box is set and the renderingreturns to normal. Alternatively, if the user wishes to move theSelector box instead of resizing it, the user can use a combination ofkeystrokes and mouse clicks, for example, by holding the shift key downwhile dragging the mouse. The user can also cancel each of theseactions, for example, by pressing the right mouse button prior toletting up the left mouse button. In other embodiments, the datasetapplication can prompt the user for values that translate to the desiredsize and position and then can update the settings through theapplication's API.

FIGS. 4A-4C present examples of how these functionalities can be used toassist in analyzing data. It can be easily seen that the ability toresize and move the Selector Box can be useful in many ways whileanalyzing the data. In accordance with aspects and features describedherein, the Selector Box can be resized and/or moved to indicate aselection of a subset of the 4D dataset. The subset of the data in thedataset data identified by the Selector Box can then be analyzed by theapplication, for example, used to render graphics that can be displayedin a graphics box such as graphics box 100 shown in FIGS. 1A and 1B.

FIG. 4A shows the case where the Selector Box 401 b has been resized torepresent a single 2D plane that can be used to analyze a singletwo-dimensional slice through the volume of data in the datasetrepresented by wireframe 401 a. One example of such a two-dimensionaldata slice, where one dimension is kept constant but the other twodimensions extend to all values in the dataset, would comprise values ofocean salinity at all latitudes and depths at a particular longitude. Asseen in FIG. 4A, orientation bar 401 c is on the aft side of the box,and thus in this case the data would be viewed from aft to front.Further analysis of the dataset can be performed by moving, or sliding,the single plane along the x axis to review the data one step at a time,e.g. at different longitudes. Alternatively, the Selector Box can befurther resized along the y axis, the z axis, or both, to select an evensmaller subset of data, e.g., values of ocean salinity at specifiedlatitudes and/or depths at that longitude. FIG. 4B shows how this samefunctionality could be used to resize the Selector Box 402 b to look atsingle data slices along the y axis of the wireframe 402 a, e.g., tolook at ocean salinity at all depths and longitudes for a particularlatitude. Note that in FIG. 4B, the orientation bar 402 c is at thebottom of the Selector Box frame 402 b, and thus the graphics displaywill represent the user's gaze from the front with no rotation.

In addition, although FIGS. 4A and 4B show analyzing the data in asingle slice, the Selector Box can be set to any size to permit the userto select any desired three-dimensional subset of the 4D datasetrepresented by the wireframe. Thus, as seen in FIG. 4C, Selector Box 403b can be resized so that it extends to the entire range of the x and ydirections of wireframe 401 a and has some depth of more than a singleplane in the z direction to represent, for example, a selection ofvalues of ocean salinity at all latitudes and longitudes for a range ofdepths represented by the depth of the Selector Box. The placement oforientation bar 403 c represents the perspective of a user lying on hisback under the Data Cube looking up into the box with their feetstretched out to the right of the page.

This approach to using the Selector Box could be used to step throughthe volume in a similar way as the single data plane examples, exceptalong the y axis. One way to look at the difference here is that thedisplay window would be showing a composite of how all of the currentlyselected single planes within the range of the Selector Box would appearoverlaid in a drawing of either 2D or 3D perspective. Another exampleuse for resizing and moving the Selector Box is for identifying theextent of some phenomenon in the volume data. The Selector Box could beresized to frame the data of interest and then the application couldprovide a way for the user to signal that this should be the new extentof the Data Cube, in effect zooming in to allow further exploration ofthe phenomenon.

Use of the Data Cube and the Selector Box is intended to be dynamic sothat applications can use them in many contexts. Thus, in someembodiments, the user can set the size and position of the Selector Boxand also influence the range that the Data Cube represents. In otherembodiments, the application associated with the 4D dataset can drivethe size and position of, the Data Cube, the Selector Box, or both. Oneexample of such an embodiment would be where the application is usingthe Selector Box as a 3D buffer of some size centered on the currentposition of an underwater vessel as it is moving through a simulated orreal-time monitoring exercise. In other embodiments, the user may beable to draw data points within the Data Cube, for example, to representvessel positions or other data. In addition, other functionality alsomay be provided, including hot keys, hot points and other features toassist the user in achieving helpful actions such as centering theSelector Box within the Data Cube or maximizing the Selector Box withinthe Data Cube.

In many cases, a user may wish to further refine the subset of dataidentified using the Selector Box as described above. For example, thedataset regarding ocean salinity at particular latitudes, longitudes,and depths may also have a fourth dimension, e.g., a time componentextending for a week, a month, or longer. The fourth dimension couldalso be a non-time related variable, such as ocean temperature or waterpressure. The graphical user control according to the present inventionwill allow the user to further refine the selection of data along this4^(th) dimension by use of an additional control such as the 4^(th) DSlider shown in FIGS. 5A-5D. Similar to the Selector Box, the 4^(th) DSlider provides several convenient ways to analyze data as describedbelow.

The most basic functionality provided by a 4^(th) D Slider according toaspects of the present invention described herein is shown in FIG. 5A,where slider 502 can be used to move along the range of data representedby data bar 501 while looking at one value at a time.

FIG. 5B illustrates ways in which the slider also can allow a range ofvalues to be selected, which can be useful for evaluating a subset orthe entire range of data represented by the slider. Setting or changingthe range represented by the slider can be done in manner similar tothat described above with respect to the Selector Box. Thus, FIG. 5Bshows the mouse hovering over the right side of slider 503. The user canthen use the mouse to stretch or resize slider 503, for example, bypressing down the left mouse button and dragging as shown in FIG. 5C tocreate slider 504. This same operation can be done to the left side ofthe slider. Of course, the slider can be resized from any point on thedata bar 501, and FIG. 5D illustrates this, showing that slider 505 canbe dragged to any of the positions 506 and resized from that point.

In addition, the 4^(th) D Slider can be used not only to indicate thesize of the subset of the data and which subset of values is selectedbut also to provide an indication of where certain types of data arelocated within the dataset. To accomplish this, the 4^(th) D Slider canuse a visual indicator to provide feedback to the user regarding anidentification of the data corresponding to the position or size of the4^(th) D Slider. In some embodiments, a draw order or layering ofdifferent visual indicators can be set to highlight various conditionsat different positions along the length of the slider.

The type and use of such a visual indicator can be set in any number ofways, for example, either by software in the graphical user controlitself or by the application being used to analyze the 4D data, and canbe either an application-defined parameter or can be set by the user asa user preference. For example, in some embodiments, a color palette canbe set and a value or range of values that a particular colorcorresponds to can be identified. In other embodiments, the visualindicator can be a variety of patterns. In addition, in someembodiments, the visual indicator can change to a second identifier toindicate a selection of the data corresponding to a first identifier.Any combination of these can also be used to provide a visualidentification to the user of the data being identified and/or selected.

Use of such visual indicators along the 4^(th) D Slider can be used tohelp guide the user to what they want to see and to help them seepatterns in the conditions represented by the data. Such a feature canbe very useful in both military and civilian applications. For example,visual indicators along a 4^(th) D Slider representing a time series ofdatasets could indicate daytime and nighttime and include the times atwhich the three-dimensional data have the most dangerous conditions.FIG. 5D illustrates an example of such highlighting. The longer sectionsof light 507 and dark 506 could represent daytime and nighttime,respectively, and the three bars 508 over the light section on the righthalf of slider bar 501 could represent anything from tidal surges totimes of high shipping traffic. In some embodiments, if the conditionsare dangerous over the entire length of time represented by the sliderand that condition is set as the top layer, the entire slider could havethe visual indicator of that condition, e.g., be highlighted in onecolor. In other embodiments, the vertical heights of different visualindicators could be different so that they may be more clearly seen on ascreen. These or any other visual indicators can be used as set by theapplication developer or by the user as noted above.

Additional uses of a graphical user control for 4D datasets according tothe present invention can provide the ability to define a tieredconfiguration that integrates more than one 4D control. For example, useof more than one graphical control could be very useful in contexts suchas mission planning, where the dataset can be very large whenconsidering the entire geospatial and temporal scope of a mission andthe number of environmental datasets needed for analysis and planning.In such a case, the application could implement two instances of the 4Dgraphical user control. In this example, the first instance would beused to define the entire scope of the mission and the second woulddefine a smaller subset within the overall scope for navigation anddisplay. Each graphical user control would act as a query mechanism toallow the user to define what data the application should load intomemory, whether from a local or remote file or database. For example auser could set the size and position of the Selector Box of the firstinstance to choose the initial dataset and its perspective andorientation, and then signal the application to retrieve that set ofdata. The user could then use the second instance of the graphical usercontrol to further refine the subset of data to be analyzed. FIGS. 6Aand 6B illustrate alternative configurations for the graphical usercontrol of the present invention. As with other configuration settingsdescribed above, such alternative configurations can be set by theapplication developer either as defaults for the 4D data application oras user-configurable settings in, for example, a user preference menu.

For example, in the configurations previously described, wherein the 4Dcontrol is in a corner of the window when not in use, presents aconvenient way to access the functionality of the 4D control and leavesmost of the window real estate available for drawing graphics. However,this configuration may be a disadvantage if the user has selected thevolume of interest with the Selector Box and then wants to pan throughthe 4^(th) D using the slider. The user would have to enable the controlmode by moving the mouse over the control which would hinder viewing thegraphic display while operating the slider and having to look past themagnified set of components on top of the window. FIG. 6A shows aslightly modified configuration to address this situation, whereSelector Box 601 is in its usual position in a corner of the window and4^(th) D Slider 602 has been located under the bottom navigation button.This way the user can pan with a less obstructed view. In thisconfiguration, the control mode can still operate in the same way asdescribed above except for the location of the 4^(th) D Slider.

While this is a better configuration in some senses, there still couldbe an issue of having the control overlaying the graphics window. If theapplication provides mouse interaction with the graphics window therecould be complications when determining whether mouse actions around the4^(th) D Slider are intended for the graphical user control or for thegraphics window itself One possible solution for this is shown in FIG.6B. In the alternative configuration shown in FIG. 6B, the graphicaluser control comprising Selector Box 603, Navigation Buttons 604, and4^(th) D Slider 605 are located in one frame of the screen, with otherapplication controls 606 and graphics rendering 607 being in separateframes within the screen. In other embodiments, the application controlcould also be placed in a floating or tool box window.

The flexibility of the 4D control components give users a simple,intuitive, and flexible means of exploring and analyzing 3D and 4D data.The wire frame design provides an easy to render user control solutionand lends itself to being less obtrusive when used as an overlaidcontrol. Limiting the user's ability to set perspective and orientationto the natural internal storage and access mechanisms of computerssimplifies graphics rendering routines. This also provides flexibleaccess to explore the data and a way to help the user maintain anunderstanding of the perspective and orientation. The alignment of thedata with the control allows the Selector Box perspective, rotation,size and position to translate easily to the index bounds and order oftraversal through an internal array for raster data. The design andflexibility of the user and application interfaces will support a widerange of configurations.

It should be noted that aspects of a graphical user control for 4Ddatasets as described herein can be accomplished by executing one ormore sequences of one or more computer-readable instructions read into amemory of one or more computers from volatile or non-volatilecomputer-readable media capable of storing and/or transferring computerprograms or computer-readable instructions for execution by one or morecomputers. Volatile computer readable media that can be used can includea compact disk, hard disk, floppy disk, tape, magneto-optical disk, PROM(EPROM, EEPROM, flash EPROM), DRAM, SRAM, SDRAM, or any other magneticmedium; punch card, paper tape, or any other physical medium.Non-volatile media can include a memory such as a dynamic memory in acomputer.

In addition, although particular embodiments, aspects, and features havebeen described and illustrated, it should be noted that the inventiondescribed herein is not limited to only those embodiments, aspects, andfeatures. It should be readily appreciated that modifications may bemade by persons skilled in the art, and the present applicationcontemplates any and all modifications within the spirit and scope ofthe underlying invention described and claimed herein. Such embodimentsare also contemplated to be within the scope and spirit of the presentdisclosure.

What is claimed is:
 1. A graphical user control for a multidimensionaldataset, comprising: a graphics box displayed on a computer screen, thegraphics box having a plurality of display edges, the graphics boxindicating the multi-dimensional dataset; a selector box displayedwithin the graphics box, the selector box configured to be resized, theresizing indicating a subset selection of a subset of amulti-dimensional dataset, the selector box having a plurality of edges,each of the edges having at least two faces; and a special-purposecomputer having computer instructions configured to retrieve data fromthe multi-dimensional dataset based on the subset selection; receive aselection of one of the faces of one of the edges associated with aviewing direction of the subset selection; display the data in thegraphics box according to the received viewing direction; correlate oneof the faces of one of the edges with one of the display edges of thegraphics box; mark the correlated one of the faces and one of thedisplay edges with identical indicia; and orient the data based on thecorrelated one of the faces and one of the display edges.
 2. Thegraphical user control according to claim 1, wherein the subsetselection is a two-dimensional slice from the multi-dimensional dataset.3. The graphical user control according to claim 1, wherein the subsetselection is a three-dimensional slice from the multi-dimensionaldataset.
 4. The graphical user control according to claim 1 furthercomprising computer instructions configured to: review the data one stepat a time by sliding the selector box along an axis of the graphics box.5. The graphical user control according to claim 1, further comprisingcomputer instructions configured to: display a preview of the data onthe selector box.
 6. The graphical user control according to claim 1,further comprising computer instructions configured to: associate aslider bar with a slider bar dimension in the multi-dimensional dataset,the slider bar having a slider bar position; and retrieve the dataassociated with the slider bar dimension from the multi-dimensionaldataset one value at a time based the slider bar position.
 7. Thegraphical user control according to claim 1 further comprising computerinstructions configured to: associate a slider bar with a slider bardimension in the multi-dimensional dataset, the slider bar having atleast two slider bar positions; and retrieve a range of the dataassociated with the slider bar dimension from the multi-dimensionaldatabase based on the at least two slider bar positions.
 8. Thegraphical user control according to claim 7 further comprising computerinstructions configured to: provide indicators to distinguish types ofthe data in the range; create a graphics rendering display area withinthe graphics box, the graphics rendering display area displaying thedata; create a control area within the graphics box, the control areadisplaying graphics control selections; and create a selection areawithin the graphics box, the selection area displaying the selector boxand the slider bar, the selection area receiving the resizing of theselector box, the viewing direction, and the slider bar position.
 9. Amethod for analyzing data comprising: receiving a resizing of a selectorbox, the resizing indicating a subset selection of a subset of amulti-dimensional dataset, the selector box located inside a graphicsbox, the graphics box indicating the multi-dimensional dataset, theselector box having a plurality of edges, each of the edges having atleast two faces, the graphics box having a plurality of display edges;retrieving data from the multi-dimensional dataset based on the subsetselection; receiving a viewing direction of the subset selection basedon a selection of one of the faces of one of the edges; analyzing theretrieved data; and displaying the analyzed data in the graphics boxaccording to the received viewing direction; correlating one of thefaces of one of the edges with one of the display edges of the graphicsbox; marking the correlated one of the faces and one of the displayedges with identical visual indicia; and displaying the analyzed dataoriented based on the correlated one of the faces and one of the displayedges.
 10. The method as in claim 9 wherein the subset selection is atwo-dimensional slice from the multi-dimensional dataset.
 11. The methodas in claim 9 wherein the subset selection is a three-dimensional slicefrom the multi-dimensional dataset.
 12. The method as in claim 9 furthercomprising: reviewing the data one step at a time by sliding theselector box along an axis of the graphics box.
 13. The method as inclaim 9 further comprising: displaying a preview of the analyzed data onthe selector box.
 14. The method as in claim 9 further comprising:associating a slider bar with a slider bar dimension in themulti-dimensional dataset, the slider bar having a slider bar position;and retrieving the data associated with the slider bar dimension fromthe multi-dimensional dataset one value at a time based the slider barposition.
 15. The method as in claim 14 further comprising: creating agraphics rendering display area inside the graphics box, the graphicsrendering display area displaying the analyzed data; creating a controlsarea inside the graphics box, the control area displaying graphicscontrol selections; and creating a selection area within the graphicsbox, the selection area displaying the selector box and the slider bar,the selection area receiving the resizing of the selector box, theviewing direction, and the slider bar position.
 16. The method as inclaim 9 further comprising: associating a slider bar with a slider bardimension in the multi-dimensional dataset, the slider bar having atleast two slider bar positions; and retrieving a range of the dataassociated with the slider bar dimension from the multi-dimensionaldatabase based on the at least two slider bar positions.
 17. The methodas in claim 9 further comprising: associating a slider bar with a sliderbar dimension in the multi-dimensional dataset, the slider bar having atleast two slider bar positions; receiving a change of at least one ofthe at least two slider bar positions; and retrieving a range of thedata associated with the slider bar dimension from the multi-dimensionaldatabase based on the changed at least two slider bar positions.
 18. Themethod as in claim 17 further comprising: providing indicators todistinguish types of the data in the range.